<?php
namespace Pinenut\Service;

class Router {
	/**
	 * Производим маршрутизацию, создаём по результатам запрос
	 * @return \Pinenut\Request
	 */
	static function route () {

		$tmp = explode('?', $_SERVER["REQUEST_URI"]);
		$path = array_shift($tmp);
		$params = array_shift($tmp);
		// бьём запрос
		$path = explode("/", ltrim($path, '/'));
		// если последним идёт / - подставляем index
		$lastPos = count($path)-1;
		if (empty($path[$lastPos])) $path[$lastPos] = 'index';
		// собираем имя действия 
		$path = implode('.', $path);
		
		$resuest = new \Application::$RequestClass($path, $_REQUEST , null, false);//array('')//'POST' == $_SERVER['REQUEST_METHOD']?$_POST:$_GET
		$resuest->withLayout = true;
		return $resuest;
	}
	
	static function url($action, array $params) {
		$url = "";
		$path = explode(".", $action);
		$lastPos = count($path)-1;
		if ('index' == $path[$lastPos]) {
			unset($path[$lastPos]);
			$url = '/';
		}
		$url = '/' . implode('/', $path) . $url;
		
		if (count($params)) {
			$pieces = array();
			foreach ($params as $key=>$value) {
				$pieces[] = $key.'='.$value;
			}
			$url .= '?'.implode('&', $pieces);
		}
		return $url;
	}
}